Networks of computing devices may be designed or modeled using network design or modeling software that graphically represents different components of the network and relationships between those components (collectively, “network elements”) as different nodes and other graphical elements on a graph. The nodes on the graph may be geometric shapes, glyphs, icons of devices, or other graphical representations of the devices. For example, different nodes may represent different routers, switches, hubs, servers, and other computing devices that are part of a network. Nodes may also represent collections or group of devices, logical or virtual components, or arbitrary collection of these. For example, the data and forwarding plane of a network switch may be represented as separate graphical objects even if contained in the same physical hardware object. Graphical connections such as line segments between the nodes may represent physical wired communicative couplings such as Ethernet, fiber, or USB; physical wireless communicative couplings such as satellite, Bluetooth, or wireless b, n, or g signaling; or logical communication sessions between the different nodes. A graph of nodes in a network may be constructed as information is inputted by a user into the network design or modeling software. In some systems, an initial graph may be constructed by the network design and modeling software automatically, by crawling the network and discovering devices that are on the network. This initial graph may be modified or customized by a user.
Network design or modeling software often includes a graph interface that allows graph nodes, graphical connections, and other graphical elements to be added, removed, arranged, or grouped on the graph. The graph interface may also support panning such that different portions of the graph may be viewed, and zooming such that portions of the graph may be viewed in more or less detail. In one example, the graph interface may include a toolbar or tool palette of selectable tools or modes for adding, removing, arranging, or grouping nodes, graphical connections, and other graphical elements, or for zooming or panning on the graph. Switching between multiple tools or modes and managing multiple nodes or groups of nodes, such as tens, hundreds, or more nodes, could involve several large cursor movements, precise clicks or selections on the part of the user, and repeated actions by the user. A single erroneous click may result in the loss of prior input. For example, a user may select several nodes by holding down the SHIFT key, and an erroneous click or a mistaken lift of a finger from the SHIFT key could cause a de-selection of the nodes already selected.
The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.